This invention relates to computer systems, and more particularly to retrieving management information in computer systems.
SCSI (small computer system interface) is a protocol for controlling the input and output of connected devices over a SCSI bus. In a SCSI environment, management information about the status of devices within the computer system may be retrieved by a device known as an initiator. An initiator issues a SCSI standard mode select and mode sense command combination to a device known as a target. The mode select command provides a means for the initiator to specify the medium, logical unit, or peripheral device parameters to the target. The initiator then sends a mode sense command to the target which allows the target to report the parameters to the initiator in the form of mode pages containing management information.
Such a system works well for the retrieval of management information where there are a few connected devices within the computer system. However, in a computer system where there are multiple devices connected to the SCSI bus and multiple peripherals attached to the devices, obtaining the status of all of the devices requires the issuance of multiple mode select/mode sense commands. With each pair of commands, there is an inherent latency as the commands traverse the computer system. Delays occur in the device""s processor along with delays at the application level, driver level, adapter level and bus level. In a storage system which contains multiple storage disks residing in a disk array managed by a storage processor connected to a management server by a SCSI bus, thousands of mode select/mode sense commands may be needed to obtain the status of all of the connected components. For example, a storage system which has 120 disks with 32 LUNs and 2 storage processors, full polling of the management information of the system takes 500 request per storage processor and 1000 requests per array. If the average round trip latency approaches 120 milliseconds, it takes approximately 4 minutes to retrieve all of the requested information. As storage processing systems grow in scale in which additional disks and additional storage processors are added, delays in retrieving management information will continue to increase proportionally.
One solution to this problem is the issuance of a mode sense page code 3F command which requests that all of the management information in the form of mode pages are retrieved and sent from the target to the initiator. Again this works well where there are a few connected devices. However, the mode sense page code 3F command can only retrieve data up to a maximum byte size of 65,536 bytes. In the case where the data to be retrieved exceeds this maximum byte size, the mode sense page code 3F command fails. To retrieve the required data for all the components in a large system where the management information exceeds 65,536 bytes, the initiator must resort to the mode select/sense command combination.
The present invention is directed to a method of retrieving management information in a protocol environment having a maximum retrieval byte size. An example of such a protocol environment is SCSI environment. A retrieval command is sent from an initiator to a target where the retrieval command is capable of retrieving more information than the maximum allowed by the protocol. A target buffer is created at the target in response to the retrieval command and the target buffer is filled with management information associated with the target. The management information may be in the form of mode pages when the method is applied in a SCSI environment. The management information is then sent from the target buffer to the initiator. If all of the management information is not retrieved, a second retrieval command is sent by the initiator to retrieve at least a portion of the unsent management information. The retrieval command may be sent from the initiator to the target via a cable and in a SCSI environment a SCSI cable or an optical fiber may be used.
The management information may be sent from the buffer of the target to a host bus adapter which has a maximum input buffer size and then from the input buffer to a buffer residing on a server. In some embodiments the management information is sent to the host bus adapter in data chunks which are limited to the maximum size of the input buffer size. In such embodiments, the data chunks have appended header information. The header information of each data chunk may include a tag parameter and the tag value may indicate that a continuation is necessary if all of the management information cannot be sent from the target to the initiator in one transmission. If a continuation is indicated in the tag parameter such that it is a continuation tag, the continuation tag is then accompanied by a reference value which identifies a next data chunk, so that the next chunk can be located and sent from the target buffer to the host bus adapter. In one embodiment, the reference value resides within the data chunk.